
let app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
      url:'',
      timeIndex:[0,0,0],
      timeArray: [[], [], []],
      selectedTime: '',
      consultContent: '',
      consultantId: null,
      userId: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      this.setData({
          url:app.globalData.url,
          consultantId:options.consultantId
      })
      // 从Storage获取用户ID
    const userInfo = wx.getStorageSync('user');
    const userId = userInfo ? userInfo.id : null;
    
    if (!userId) {
      wx.showToast({ title: '请先登录', icon: 'none' });
      setTimeout(() => wx.navigateBack(), 1500);
      return;
    }
    //初始化时间选择器
    // 初始化时间选择器数据
    this.initTimeData();
    
    this.setData({
        consultantId:options.consultantId,
        userId
    });
    console.log('参数:', {
        consultantId: options.consultantId,
        userId: userId
      });
  },
  

 // 初始化时间选择器数据
 initTimeData() {
    const dateArray = [];
    const timeArray = [];
    const minuteArray = [];
    
    // 生成日期选项（未来7天）
    const today = new Date();
    for (let i = 0; i < 7; i++) {
      const date = new Date();
      date.setDate(today.getDate() + i);
      // 分别获取年、月、日并格式化
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      // 用字符串拼接组合成日期格式
      const dateStr = year + '-' + month + '-' + day;
      dateArray.push(dateStr);
    }
    
    // 生成时间选项（9:00-18:00，每30分钟）
    for (let hour = 9; hour <= 18; hour++) {
      for (let min = 0; min < 60; min += 30) {
        // 分别格式化小时和分钟，不足2位补0
        const hourStr = hour.toString().padStart(2, '0');
        const minStr = min.toString().padStart(2, '0');
        // 用字符串拼接组合成时间格式
        const timeStr = hourStr + ':' + minStr;
        timeArray.push(timeStr);
      }
    }
    
    // 分钟选项（固定为00）
    minuteArray.push('00');
    
    this.setData({
      timeArray: [dateArray, timeArray, minuteArray]
    });
  },

  // 时间选择器列变化
  bindColumnChange(e) {
    const { column, value } = e.detail;
    const { timeIndex, timeArray } = this.data;
    
    const newIndex = [...timeIndex];
    newIndex[column] = value;
    
    this.setData({
      timeIndex: newIndex
    });
  },

  // 时间选择完成
  bindTimeChange(e) {
    const value = e.detail.value;
    const { timeArray } = this.data;
    
    const date = timeArray[0][value[0]];
    const time = timeArray[1][value[1]];
    const minute = timeArray[2][value[2]];
    
   // 使用字符串拼接组合完整时间格式
  const formattedTime = date + ' ' + time + ':' + minute;
    
    this.setData({
      selectedTime: formattedTime,
      timeIndex: value
    });
  },

  // 输入情况说明
  onInputConsultContent(e) {
    this.setData({
      consultContent: e.detail.value
    });
  },

  // 提交预约
  submitConsult() {
    const { selectedTime, consultContent, consultantId, userId } = this.data;
    
    // 验证数据
    if (!selectedTime) {
      wx.showToast({ title: '请选择预约时间', icon: 'none' });
      return;
    }
    
    if (!consultContent.trim()) {
      wx.showToast({ title: '请填写情况说明', icon: 'none' });
      return;
    }
    
    if (!consultantId || !userId) {
      wx.showToast({ title: '参数错误', icon: 'none' });
      return;
    }
    
    // 显示加载中
    wx.showLoading({ title: '提交中...', mask: true });
    
    // 准备请求数据 - 在前端设置状态值
    const requestData = {
      consultContent: consultContent,
      consultTime: selectedTime,
      userId: userId,
      consultantId: consultantId,
      status: "未完成",       // 前端设置状态
      assessStatus: "未评价"  // 前端设置评价状态
    };
    
    // 提交数据到后端
    wx.request({
      url: this.data.url+'myConsult',
      method: 'POST',
      header: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + wx.getStorageSync('token')
      },
      data: requestData,
      success: (res) => {
        wx.hideLoading();
        if (res.data.code === 200) {
          wx.showToast({ title: '预约成功' });
          setTimeout(() => {
            wx.navigateBack();
          }, 1500);
        } else {
          wx.showToast({ title: res.data.msg || '预约失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({ title: '网络错误', icon: 'none' });
      }
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})